Instead of having ALL npc's auto-check when maps change,  plance an instance of npc handlers on each map those npc's can spawn.  This way only relevent npc's are processed.  This is much more scalable.